let a = 123;
console.log(window.a);

// let b = '你好啊';
// console.log(b);
// console.log(window.b);


// let a = 123;
// let a = 456; //报错 检查到，当前作用域（全局作用域）已声明了变量a


// let a = 123; // 会报错，因为全局作用域已存在a
// if(true){
//     var a = 234;  // 提升
//     console.log(a);
// }
// console.log(a);





// // 不是同一个作用域就可以
// let a = 123;
// function test() {
//     let a = 234;
//     console.log(a);
// }
// test();
 




// let a = 123; //全局作用域定义a

// { // 平时不会直接写大括号
//     let a = 456; //块级作用域定义a
//     console.log(a); //使用的是块级作用域中的a
// }

// console.log(a)




// if (Math.random() < 0.5) {
//     let a = 123; //定义在当前块级作用域
//     console.log(a) //当前块级作用域中的a
// }
// else {
//     //这是另外一个块级作用域，该作用域中找不到a
//     console.log(a)
// }

// console.log(a);




let div = document.getElementById("divButtons");
for (let i = 1; i <= 10; i++) { 
    let button = document.createElement("button")
    button.innerHTML = "按钮" + i;
    button.onclick = function () {
        console.log(i) //使用的是当前作用域中的 i, 即函数出生时的块级作用域
    }
    div.appendChild(button)
} 
console.log(i);  // 虽然i在全局声明，但是作了特殊处理，全局未定义

